/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jforum.actions;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jforum.DAO.UserDAO;
import jforum.domain.User;
import jforum.util.AuthModule;
import jforum.util.DBConnector;

/**
 * Действия просмотра профиля (своего или чужого)
 * @author Вадим
 */
public class ViewProfileAction implements Action {

    public String perform(HttpServletRequest request, HttpServletResponse response) throws Exception {
        User user=AuthModule.getUser(request.getCookies());
        String id=request.getParameter("id");
        int user_id=-1;
        try {
            // если пришел id в качестве параметра
            if (id!=null)
                user_id=Integer.parseInt(id);
        } catch (NumberFormatException ex) {
            request.getSession().setAttribute("errorMessage", "Неправильное значение параметра id.");
            return ActionNames.error_page;
        }

        if (id!=null) {
            //просматриваем чужой профиль
            DBConnector conn=DBConnector.getInstance();
            UserDAO dao = new UserDAO(conn);
            User u = dao.Load(user_id);
            if (u.active <=0) {
                request.getSession().setAttribute("errorMessage", "Пользователь не активен.");
                return ActionNames.error_page;
            }
            request.setAttribute("user", u);
            return ActionNames.profile_page;
        } else {
            if (user!=null) {
                //наш профиль
                request.setAttribute("user", user);
                return ActionNames.profile_page;
            } else {
                request.getSession().setAttribute("errorMessage", "Вам нужно зарегистрироваться, тогда у вас будет свой профиль.");
                return ActionNames.error_page;
            }
        }

    }

}
